﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
//using UPC.UbicatuReu.BE;
using UPC.UbicaTuReu.WEB.WSUsuario;

namespace UPC.UbicaTuReu.WEB.Controllers
{
    public class UsuarioController : Controller
    {

        WSUsuario.UsuariosClient proxyUsuario = new WSUsuario.UsuariosClient();
        WSNotificacionUsuario.SendEmailClient proxyMail = new WSNotificacionUsuario.SendEmailClient();

        public ActionResult Index(FormCollection collection)
        {
            return View(proxyUsuario.ListarUsuario());
        }

        //
        // GET: /Usuario/Details/5

        public ActionResult Details(int id)
        {
            return View();
        }

        //
        // GET: /Usuario/Create

        public ActionResult Create()
        {
            
            return View();
        } 

        //
        // POST: /Usuario/Create

        [HttpPost]
        public ActionResult Create(FormCollection collection)
        {
            try
            {

                string clave = (string)collection["Clave"];
                int codigo = 0;
                string correo = (string)collection["Correo"];
                string dni = (string) collection["Dni"];
                int estado = 1;
                string nombre = (string) collection["Nombre"];
                int rol = 1;
                proxyUsuario.CrearUsuario(codigo, nombre, dni, correo, clave, estado, rol);

                this.EnviarNotificacion(correo, nombre, clave);

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }


        private bool EnviarNotificacion(string mailReceptor, string nombre, string clave)
        {
            string asunto = "Usuario UbicaTuREU";
            string cuerpo = "Estimado " + nombre + ", ha sido registrado en UbicaTuReu, su password es: " + clave;
            return proxyMail.EnviarCorreoWS(mailReceptor, asunto, cuerpo);
        
        }
        
        //
        // GET: /Usuario/Edit/5
 
        public ActionResult Edit(int id)
        {
            Usuario usuario = proxyUsuario.ObtenerUsuario(id);
            return View(usuario);
        }

        //
        // POST: /Usuario/Edit/5

        [HttpPost]
        public ActionResult Edit(int id, FormCollection collection)
        {
            try
            {
                string clave = (string)collection["Clave"];
                string correo = (string)collection["Correo"];
                string dni = (string)collection["Dni"];
                string estado = (string)collection["Estado"];
                int sta;
                sta = Convert.ToInt32 (estado);
                string nombre = (string)collection["Nombre"];
                int rol = 1;
                proxyUsuario.ModificarUsuario(id, nombre, dni, correo, clave, sta, rol);
 
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

        //
        // GET: /Usuario/Delete/5
 
        public ActionResult Delete(int id)
        {
            Usuario usuario = proxyUsuario.ObtenerUsuario(id);
            return View(usuario);
        }

        //
        // POST: /Usuario/Delete/5

        [HttpPost]
        public ActionResult Delete(int id, FormCollection collection)
        {
            try
            {
                // TODO: Add delete logic here
                proxyUsuario.EliminarUsuario(id);
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
    }
}
